// function test1() {
//     for(let i = 0; i < 10; i ++){
//         console.log('test1', i)
//     }
// }
//
// function test2() {
//     for(let i = 0; i < 10; i ++){
//         console.log('test2', i)
//     }
// }
//
// test1()  // test1 阻塞test2的执行
// // test1执行完毕后开始执行test2
// // test1 跟 test2 是同步程序
// test2()

// async function test1() {
//     for(let i = 0; i < 10; i ++){
//         await console.log('test1', i)
//     }
// }
//
// async function test2() {
//     for(let i = 0; i < 10; i ++){
//         await console.log('test2', i)
//     }
// }
// // test1 0
// // test2 0
// // test1 1
// // test2 1
// // test1 2
// // test2 2
// // test1 3
// // test2 3
// // test1 4
// // test2 4
// // test1 5
// // test2 5
// // test1 6
// // test2 6
// // test1 7
// // test2 7
// // test1 8
// // test2 8
// // test1 9
// // test2 9
//
// test1()
// // test1 不会阻塞test2执行
// // test1 开始执行， 立即执行test2
// // test1 test2 是异步程序
// test2()

// async function asyncTest(callback) {
//     console.log('test start')
//     await  callback()
//     console.log('test end')
// }
//
// function test() {
//     console.log('testing.......')
// }
//
// asyncTest(() => {
//     console.log('Callback is being invoked')
// })
// test()

const {
    readFile,
    readFileSync,
    writeFile,
    writeFileSync
} = require('fs')

const {
    resolve
} = require('path')

const data = [
    {
        name: 'iPhone 15',
        filename: 'iphone'
    },
    {
        name: 'Xiaomi 14',
        filename: 'xiaomi'
    },
    {
        name: 'Huawei Ural 70',
        filename: 'huawei'
    }
]
data.forEach(item => {
    const path = resolve(__dirname, `data/${ item.filename }.json`)
    // 同步 阻塞
    const data = JSON.parse(readFileSync(path, 'utf8'))
    data.push(item.name)
    // 异步 非阻塞
    // writeFileSync 顺序写入
    writeFile(path, JSON.stringify(data), (err, data) => {
        console.log(item.name + '写入完成')

        if(err) {
            throw new Error('文件写入失败')
        }
    })

    console.log(item.name + '准备写入文件')
})
